package com.neusoft.gene.nep.controller;

import com.neusoft.gene.nep.entity.CommonResult;
import com.neusoft.gene.nep.entity.Member;
import com.neusoft.gene.nep.service.IMemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description: TODO MemberController 成员管理模块控制器
 * @author: 君醉
 * @date: 2024/6/19 15:26
*/

@RestController
@CrossOrigin("*")
@RequestMapping("/member")
public class MemberController {
    @Autowired
    IMemberService memberService;

//  如果客户端是JSON传递对象，那么服务器端必须使用 @RequestBody
    @PutMapping("/mod")
    //通过 @RequestBody 注解将请求体中的 JSON 对象映射为 Member 对象，
    // 并调用 memberService 的 modMember 方法进行成员信息修改操作。
    public CommonResult modMember( @RequestBody Member member ){
        return  memberService.modMember(member);
    }



    @GetMapping("/list")
    //通过 @RequestBody 注解将请求体中的 JSON 对象映射为 Member 对象，
    //调用 memberService 的 list 方法获取成员列表。
    public CommonResult<List<Member>> list(){
        return  memberService.list();
    }


    @PutMapping("/resetpwd")
    //通过 @RequestBody 注解将请求体中的 JSON 对象映射为 Member 对象，
    // 并调用 memberService 的 resetpwd 方法进行密码重置操作。
    public CommonResult  resetpwd( @RequestBody Member member ){
        return  memberService.resetpwd(member);
    }


    @GetMapping("/login/m/{tel}/{smscode}")
    //通过 @PathVariable 注解获取 tel 和 smscode 参数，
    // 并调用 memberService 的 loginm 方法进行成员登录操作。
    public  CommonResult<Member> loginm(@PathVariable("tel") String tel, @PathVariable("smscode") String smscode){
        return   memberService.loginm( tel, smscode );
    }

    @PostMapping("/register/mobile/{tel}")
    //通过 @PathVariable 注解获取 tel 参数，
    // 并调用 memberService 的 register 方法进行手机号注册操作。
    public CommonResult<Member> register(@PathVariable("tel") String tel){
        return memberService.register(tel);
    }

    /**
     * 成员模块登录接口
     * @param logid
     * @param logpwd
     * @return
     */
    @PostMapping("login")
    //通过 logid 和 logpwd 参数进行成员登录操作。
    public CommonResult<Member> login(String logid, String logpwd){
        return memberService.login(logid, logpwd);
    }
    /**
     * 成员模块注册注册接口
     * @param member
     * @return
     */
    @PostMapping("register")
    //通过 @RequestBody 注解将请求体中的 JSON 对象映射为 Member 对象，
    // 并调用 memberService 的 register 方法进行注册操作。
    public CommonResult<Member> register( @RequestBody Member member  ){
        return  memberService.register(member);
    }
}